home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 24
/
Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso
/
Aminet
/
dev
/
c
/
AmiVoGL_MDEV.lha
/
examples
/
moretxt.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-07-15
|
3KB
|
213 lines
#include <stdio.h>
#ifdef SGI
#include "gl.h"
#include "device.h"
#include "hershey.h"
#else
#include "vogl.h"
#include "vodevice.h"
#endif
/*
* drawgrid
*
* draw a grid in the middle of the screen
*/
void drawgrid(void)
{
float x;
int i;
color(GREEN);
rect(0.1, 0.4, 0.9, 0.6);
x = 0.2;
for (i = 0; i < 8; i++) {
move2(x, 0.4);
draw2(x, 0.6);
x += 0.1;
}
move2(0.1, 0.5);
draw2(0.9, 0.5);
color(YELLOW);
}
/*
* demonstrate some more features of text
*/
int main(
int argc,
char **argv)
{
int i;
float x;
short val;
winopen("moretxt");
unqdevice(INPUTCHANGE);
qdevice(KEYBD);
if (argc == 2)
hfont(argv[1]);
else
hfont("futura.l");
htextsize(0.05, 0.05);
ortho2(0.0, 1.0, 0.0, 1.0);
color(BLACK);
clear();
drawgrid();
/*
* show some scaled text on the grid (In the bottom part)
*/
hboxtext(0.1, 0.4, 0.8, 0.1, "{This is Some text] | $");
qread(&val);
color(BLACK);
clear();
drawgrid();
/*
* centertext causes text to be centered around the current graphics
* position this is especially usefull if you want your text to come
* out centered on a line, or a character to be centered on a point
* in a graph. A non-zero argument turns centertext on.
*
* show a string centered on the center line
*/
hcentertext(1);
hboxtext(0.5, 0.5, 0.8, 0.1, "{This is Some Centered text] | $");
/*
* turn centertext off. We use an argument with the value zero.
*/
hcentertext(0);
qread(&val);
color(BLACK);
clear();
/*
* rotate the grid so that it is the same angle as the text after
* textang for text ang.
*/
pushmatrix();
translate(0.5, 0.5, 0.0);
rotate(900, 'z');
translate(-0.5, -0.5, 0.0);
drawgrid();
popmatrix();
/*
* turn on centered text again
*/
hcentertext(1);
/*
* set the angle to 90.
*/
htextang(90.0);
/*
* draw the string
*/
hboxtext(0.5, 0.5, 0.8, 0.1, "{This is Some Rotated Centered text] | $");
/*
* turn off center text
*/
hcentertext(0);
/*
* set text angle back to 90
*/
htextang(0.0);
qread(&val);
color(BLACK);
clear();
drawgrid();
/*
* as all the software fonts are proportionally spaced we use
* the fixedwidth call to make each character take the same amount
* of horizontal space. As with centertext this is done by passing
* fixedwidth a non-zero argument.
*/
hfixedwidth(1);
hboxtext(0.1, 0.5, 0.8, 0.1, "{This is Some Fixedwidth text] | $");
qread(&val);
color(BLACK);
clear();
drawgrid();
/*
* now try centered and fixewidth at the same time
*/
hcentertext(1);
color(RED);
move2(0.5, 0.5);
hcharstr("{This is Some Cent.Fixedwidth text] | $");
hcentertext(0);
qread(&val);
color(BLACK);
clear();
drawgrid();
color(RED);
move2(0.9, 0.4);
hrightjustify(1);
hfixedwidth(0);
hcharstr("{This is Some Right Justified text] | $");
qread(&val);
color(BLACK);
clear();
drawgrid();
/*
* scale the text so tha a character is the size of a box in
* the grid.
*/
hboxfit(0.8, 0.1, 8);
hfixedwidth(1);
/*
* draw the two strings fixedwidth (it is still turned on)
*/
hleftjustify(1);
move2(0.1, 0.4);
hcharstr("ABCDefgh");
move2(0.1, 0.5);
hcharstr("IJKLmnop");
qread(&val);
gexit();
}